package com.tom.springframework.beans.factory.support;

import com.tom.springframework.beans.BeansException;
import com.tom.springframework.core.io.Resource;
import com.tom.springframework.core.io.ResourceLoader;

/**
 * Bean对象读取接口
 * <p>
 * 把xml 转换成BeanDefinition 后需注册到{@code BeanDefinitionRegistry}
 * 实现类{@code DefaultListableBeanFactory # beanDefinitionMap}
 * </p>
 *
 * @author zx
 * @date 2024年11月18日 15:07
 */
public interface BeanDefinitionReader {
    /**
     * 获取到BeanDefinitionRegistry
     *
     * @return {@link BeanDefinitionRegistry}
     */
    BeanDefinitionRegistry getRegistry();

    ResourceLoader getResourceLoader();

    void loadBeanDefinitions(Resource resource) throws BeansException;

    void loadBeanDefinitions(Resource... resources) throws BeansException;

    void loadBeanDefinitions(String location) throws BeansException;

    void loadBeanDefinitions(String... locations) throws BeansException;
}
